package com.ruoyi.apply.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.outuser.domain.OutUser;
import com.ruoyi.outuser.mapper.OutUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.apply.mapper.ApplyMapper;
import com.ruoyi.apply.domain.Apply;
import com.ruoyi.apply.service.IApplyService;

/**
 * 申请表管理Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-08-25
 */
@Service
public class ApplyServiceImpl implements IApplyService 
{
    @Autowired
    private ApplyMapper applyMapper;

    /**
     * 查询申请表管理
     * 
     * @param id 申请表管理主键
     * @return 申请表管理
     */
    @Override
    public Apply selectApplyById(Long id)
    {
        return applyMapper.selectApplyById(id);
    }

    /**
     * 查询申请表管理列表
     * 
     * @param apply 申请表管理
     * @return 申请表管理
     */
    @Override
    public List<Apply> selectApplyList(Apply apply)
    {
        return applyMapper.selectApplyList(apply);
    }

    /**
     * 新增申请表管理
     * 
     * @param apply 申请表管理
     * @return 结果
     */
    @Override
    public int insertApply(Apply apply)
    {

        return applyMapper.insertApply(apply);
    }

    /**
     * 修改申请表管理
     * 
     * @param apply 申请表管理
     * @return 结果
     */
    @Override
    public int updateApply(Apply apply)
    {
        if(apply.getStatus()){
            OutUser outUser = new OutUser();
            outUser.setId(apply.getUid());
            outUser.setYearCourse(0L);
            outUser.setStudyCourse(0L);
            outUser.setEmail(apply.getEmail());
            outUser.setName(apply.getName());
            outUser.setDepartment(apply.getDepartment());
            outUser.setPosition(apply.getPosition());
            outUser.setIdcard(apply.getIdcard());
            outUser.setCreateTime(DateUtils.getNowDate());
            outUser.setStatus(true);
            outUserMapper.updateOutUser(outUser);
        }

        return applyMapper.deleteApplyById(apply.getId());
    }

    /**
     * 批量删除申请表管理
     * 
     * @param ids 需要删除的申请表管理主键
     * @return 结果
     */
    @Autowired
    OutUserMapper outUserMapper;
    @Override
    public int deleteApplyByIds(Long[] ids)
    {
        return applyMapper.deleteApplyByIds(ids);
    }

    /**
     * 删除申请表管理信息
     * 
     * @param id 申请表管理主键
     * @return 结果
     */
    @Override
    public int deleteApplyById(Long id)
    {
        return applyMapper.deleteApplyById(id);
    }
}
